lv2-urid 1.0.1

rust-lv2's URID handling library
Documentation

rust-lv2's URID handling library.

URI <-> URID mapping utilities used by rust-lv2, a safe, fast, and ergonomic framework to create LV2 plugins for audio processing, written in Rust.

LV2 often uses URIs to identify types. However, comparing strings isn't particularly performant. Therefore, every URI can be mapped to a URID (basically a u32) by the host, which can be efficiently compared. This crate contains safe handles for this mapping feature, as well as the handy URID<T> type: It already contains the type the URID is describing, which leads to many generic type arguments be elidable.

Documentation

The original LV2 API (in the C programming language) is documented by "the LV2 book". This book is in the process of being translated to Rust along with the development of rust-lv2 (link) and describes how to properly use rust-lv2.

Building

Since the bindings to the raw C headers are generated with bindgen, you need to have Clang installed on your system and, if it isn't in your system's standard path, set the environment variable LIBCLANG_PATH to the path of libClang.

Features

Like any other crate of rust-lv2, this crate has the optional host feature. Some of the types defined by some crates are only useful for testing or LV2 hosts. Since the goal of this framework is to provide an easy way to create plugins, these aren't necessary and therefore gated behind that feature.

License

Licensed under either of

at your option.